package com.flyme.module.order.client.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.egzosn.pay.common.bean.MsgType;
import com.flyme.common.core.model.base.AbstractEntity;
import com.flyme.module.order.client.vo.PayType;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

/**
 * 支付账户
 *
 * @author zyf
 * @date 2019-2-20
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@TableName("odr_payaccount")
public class PayAccount extends AbstractEntity<PayAccount> {
    private static final long serialVersionUID = 1L;
    /**
     * 支付合作id,商户id，差不多是支付平台的账号或id
     */
    private String partner;
    /**
     * 应用id
     */
    private String appId;
    /**
     * 支付平台公钥(签名校验使用)，sign_type只有单一key时public_key与private_key相等，比如sign_type=MD5(友店支付除外)的情况
     */
    private String publicKey;
    /**
     * 应用私钥(生成签名)
     */
    private String privateKey;
    /**
     * 异步地址
     */
    private String notifyUrl;
    /**
     * 同步回调地址
     */
    private String returnUrl;
    /**
     * 收款账号, 针对支付宝
     */
    private String seller;
    /**
     * 签名类型
     */
    private String signType;
    /**
     * 枚举值，字符编码 utf-8,gbk等等
     */
    private String inputCharset;
    /**
     * 支付类型,aliPay：支付宝，wxPay：微信, youdianPay: 友店微信,此处开发者自定义对应com.egzosn.pay.demo.entity.PayType枚举值
     */
    private PayType payType;
    /**
     * 消息类型，text,xml,json
     */
    private MsgType msgType;
    /**
     * 请求证书地址，请使用绝对路径
     */
    private String keystorePath;
    /**
     * 证书对应的密码
     */
    private String storePassword;
    /**
     * 是否为测试环境
     */
    private Boolean isTest;


    @TableField(exist = false)
    private Order order;
}
